{cover_enabled, true}.
{cover_opts, [verbose]}.
{cover_export_enabled, true}.
{covertool, [
    {coverdata_files, [
        "ct.coverdata",
        "eunit.coverdata"
    ]}
]}.
{cover_excl_mods, [
    libp2p_identify_pb,
    libp2p_peer_pb,
    libp2p_ack_stream_pb,
    libp2p_gossip_pb,
    libp2p_relay_pb,
    libp2p_proxy_pb
]}.

{deps, [
    lager,
    sidejob,
    {ranch, "1.5.0"},
    {libp2p_crypto, {git, "https://github.com/helium/libp2p-crypto.git", {tag, "v1.5.2"}}},
    {nat, ".*", {git, "https://github.com/benoitc/erlang-nat", {branch, "master"}}},
    {backoff, "1.1.6"},
    {throttle, "0.2.0", {pkg, lambda_throttle}},
    {cuttlefish, ".*", {git, "https://github.com/helium/cuttlefish", {branch, "develop"}}},
    {inet_ext, ".*", {git, "https://github.com/benoitc/inet_ext", {branch, "master"}}},
    {splicer, "0.5.5"},
    {relcast, ".*", {git, "https://github.com/helium/relcast.git", {branch, "master"}}},
    {erbloom, ".*", {git, "https://github.com/Vagabond/erbloom", {branch, "master"}}},
    prometheus
]}.

{erl_opts, [
    {parse_transform, lager_transform},
    {i, "./_build/default/plugins/gpb/include"},
    warn_untyped_records,
    debug_info,
    warnings_as_errors
]}.

{plugins, [
    {rebar3_gpb_plugin, "2.22.1"},
    covertool
]}.

{provider_hooks, [
    {pre, [
        {compile, {protobuf, compile}},
        {clean, {protobuf, clean}}
    ]}
]}.

{gpb_opts, [
    {i, "src"},
    {o_erl, "src/pb"},
    {o_hrl, "src/pb"},
    {msg_name_prefix, "libp2p_"},
    {msg_name_suffix, "_pb"},
    {module_name_suffix, "_pb"},
    {strings_as_binaries, false},
    type_specs
]}.

{shell, [{apps, [lager, ranch]}]}.

{dialyzer, [
    {warnings, [unknown]},
    {plt_apps, all_deps}
]}.

{xref_checks, [
    undefined_function_calls,
    %locals_not_used,
    undefined_functions,
    deprecated_function_calls,
    deprecated_functions
]}.

{profiles, [
    {test, [
        {deps, [
            cth_readable,
            meck
        ]}
    ]}
]}.

{edoc_opts, [
    {dir, "gh_pages/"}
]}.
